package cn.jasonone.jfx.context;


import javafx.fxml.Initializable;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
import lombok.AccessLevel;
import lombok.Setter;

import java.net.URL;
import java.util.ResourceBundle;

/**
 * @author xujie
 * @version 1.0
 * @date 2021/12/21 10:03
 */
public abstract class BaseController implements Initializable {

    protected Stage stage;

    protected Scene scene;

    protected Pane rootPane;

    /**
     * 当节点被放入场景时执行
     *
     * @param scene 新的场景
     */
    public void addScene(Scene scene){};

    /**
     * 当节点从场景中移除时执行
     *
     * @param scene 移除之前所在场景
     */
    public void removeScene(Scene scene){};

    /**
     * 当节点被放入舞台时执行
     *
     * @param stage 新的舞台对象
     */
    public void addStage(Stage stage){};

    /**
     * 当节点从舞台中移除时执行
     *
     * @param stage 移除之前所在舞台对象
     */
    public void removeStage(Stage stage){};

    /**
     * 初始化FXML处理器,jfx-framework框架中的特有属性在此阶段已初始化
     */
    public abstract void initialize();

    /**
     * 初始化FXML处理器,jfx-framework框架中的特有属性在此阶段尚未初始化
     *
     * @param location
     * @param resources
     */
    @Override
    public void initialize(URL location, ResourceBundle resources) {

    }
}
